package com.wongoing.api.wechat.pub.service.impl;

import java.io.IOException;

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.wongoing.api.wechat.pub.WebChat;
import com.wongoing.api.wechat.pub.entity.AccessToken;
import com.wongoing.api.wechat.pub.entity.JsapiTicket;
import com.wongoing.api.wechat.pub.service.WebChatService;
import com.wongoing.bus.util.Constants;

/**
 * 功能说明：微信辅助服务类
 * 修改说明：
 * @author zhenglibing
 * @date 2018年1月12日 上午9:42:56
 * @version 0.1
 */
@Service("webChatService")
public class WebChatServiceImpl implements WebChatService {

	/**
	 * 功能说明：获取微信公众号AccessToken（使用缓存机制）
	 * 修改说明：
	 * @author zhenglibing
	 * @date 2018年1月12日 上午9:41:57
	 * @return
	 * @throws IOException
	 */
	@Cacheable(value = "webchat", key="'PubAccessToken'")
	public AccessToken getPubAccessToken() throws IOException {
		AccessToken accessToken = WebChat.getAccessTokenEntity(Constants.WEBCHAT_PUB_APPID, Constants.WEBCHAT_PUB_APPSECRET);
		return accessToken;
	}

	/**
	 * 功能说明：获取调用微信公众号JSAPI接口的临时票证
	 * 修改说明：
	 * @author zhenglibing
	 * @date 2018年1月25日 上午9:11:39
	 * @return
	 * @throws IOException
	 */
	@Cacheable(value = "webchat", key = "'JsApiTicket'")
	public JsapiTicket getJsApiTicket() throws IOException {
		JsapiTicket ticket = WebChat.getJsApiTicket(this.getPubAccessToken().getAccess_token());
		return ticket;
	}
}
